http://www.WizBrother.com/
首页: 电信 联通控制面版 短消息工具箱我的状态系统提醒IMPK市场 安全退出

IMPK战网论坛 >> 刺客 >> 浏览: 暗黑2物品价格计算导论
Impk-DiabloⅡExpansion Set-Assassin
发新帖子  回复贴子  发起投票 版主:竹幻千叶, 等风来

页次: 转到第 [ 1 2 ] 页加入收藏
暗黑2物品价格计算导论
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(0)楼,发贴时间:25-05-22 14:10

暗黑2物品价格计算导论

暗黑2中的绝大部分物品,在npc处都有相应的价格(任务相关物品和红门钥匙等特定事件物品除外)。价格共有4类,以下详细解释。

一、4类npc价格

1.卖出价格(sell)
——指npc售卖该物品的价格。也就是人物买入该物品的价格。

物品包括npc自售物品,以及人物卖给npc后保留在npc界面的物品。
人物卖给npc后不会保留在npc界面的物品:破碎物品(低品质的一种)、无形物品、有镶嵌物物品。特别的,当npc相应类型页面的剩余空间不足以存放该物品时,该物品也会消失。
该价格会受到任务降价、物品降价影响。

2.买入价格(buy)
——指npc买入该物品价格。也就是人物卖出该物品的价格。
该价格不受任何降价影响。

3.维修价格(repair)
——指非无形、非无法破坏物品耐久度不满(非无形的投掷武器数量不满),以及非无形物品聚气次数不满时,在铁匠处维修该物品所需要的价格。
该价格受物品降价影响。

4.赌博价格(gamble)
——指人物从赌博npc处赌博该物品时的价格。
该价格受物品降价影响。

[ 本贴由 竹幻千叶 在 05-23 01:09 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(1)楼,发贴时间:25-05-22 14:11

二、卖出、买入、维修价格计算流程

0.物品基础价格=cost

armor.txt、weapons.txt、misc.txt中,均有cost列,为相应物品为普通成色时(防具需要随机到最大基础防御值maxac时)的价格。
books.txt中,为BaseCost和CostPerCharge两列,分别为书的价格和卷轴的价格,包括回城之书和辨识之书。
投掷类武器的cost,为该物品1个单位数量的价格。
若该物品为cube升级物品,按照当前物品类型确定cost。

1.物品修正基础价格
物品修正基础价格=[物品基础价格cost*修正系数]

a.非防具物品的基础属性不可变,修正系数=1。
如低品质、非无形或无形的武器,其基础最小伤害、最大伤害、耐久度满值都为固定值,低品质或无形的武器,其基础属性计算相应的奖励或惩罚。

b.防具的基础防御数值可变,修正系数=实际基础防御/maxac。
minac、maxac为该类型防具在armor.txt中对应列的值,分别为最小基础防御、最大基础防御。对于通过cube升级的物品,类型取实际类型。
低品质、非无形或无形的防具,其基础耐久度满值都为固定值。低品质或无形的防具,其防御值和耐久度满值计算相应的奖励或惩罚。

各类物品的实际基础防御、伤害、耐久度计算方式如下:

1.1低品质防具
实际基础防御=max(1,[Rnd(minac,maxac)*3/4]),Rnd(a,b)表示取a与b之间的随机整数。
实际基础耐久=max(1,[(DUR-1)/3]),DUR为该物品为普通形态的耐久度满值(durability列,下同)。
低品质物品分四类,粗糙的、损坏的、劣质的、破损的。其中破损的物品npc无法出售,人物卖给npc后会直接消失。其他三类只有名称区别。

1.2非低品质防具
1.2.1不自带增强防御ed%词条的防具
实际基础防御=[Rnd(minac,maxac)*if(无形,1.5,1)]
实际基础耐久=if(or(and(非无形,非降格),cube升级物品),DUR,if(无形,if(非降格,[DUR/2]+1,[DUR*X/2]+1),DUR*X))
X为降格物品的耐久度倍数,稀有降格物品为3,魔法降格物品为2。
通过cube升级后,耐久度满值变为正常值(非无形值、非降格值),下同。

1.2.2自带增强防御ed%词条的防具
实际基础防御= [(maxac+1)* if(无形,1.5,1)]
实际基础耐久=if(or(and(非无形,非降格),cube升级物品),DUR,if(无形,if(非降格,[DUR/2]+1,[DUR*X/2]+1),DUR*X))
注意:此类防具使用cube升级后,会重新随机基础防御,此时按照1.2.1中公式计算。

1.3低品质武器
实际基础伤害=max(1,[DAM*3/4]),DAM为该武器为普通形态的伤害,包括mindam、maxdam、2handmindam、2handmaxdam、minmisdam、maxmisdam六列,分别代表单手、双手、投掷的最小、最大伤害。
实际基础耐久=max(1,[(DUR-1)/3]),DUR为该物品为普通形态的耐久度满值(durability列,下同)。

1.4非低品质武器
实际基础伤害=[DAM*if(无形,1.5,1)]
实际基础耐久=if(or(and(非无形,非降格),cube升级物品),DUR,if(无形,if(非降格,[DUR/2]+1,[DUR*X/2]+1),DUR*X))


[ 本贴由 yanhuang415 在 05-22 14:15 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(2)楼,发贴时间:25-05-22 14:13

2.成色修正基础价格
怪物掉落的未辨识物品按照普通物品处理,以下步骤中均是如此。
2.1暗金和套装
mul和add为uniqueitems.txt、setitems.txt中cost mul和cost add两列的对应值。对于通过cube升级的物品,以上参数取该物品升级前的初始类型参数,而非升级后的实际类型参数。

2.1.1投掷武器(1个单位)
物品修正基础价格<65536时,成色修正基础价格=物品修正基础价格+[([物品修正基础价格*mul/1024]+add)/最大数量]
物品修正基础价格≥65536时,成色修正基础价格=物品修正基础价格+[([物品修正基础价格/1024]*mul+add)/最大数量]

2.1.2除投掷武器外的其他物品
物品修正基础价格<65536时,成色修正基础价格=物品修正基础价格+[物品修正基础价格*mul/1024]+add
物品修正基础价格≥65536时,成色修正基础价格=物品修正基础价格+ [物品修正基础价格/1024]*mul+add

2.2低品质物品
2.2.1投掷武器(1个单位)
成色修正基础价格=物品修正基础价格-[[物品修正基础价格/2]/最大数量]
2.2.2除投掷武器外的其他物品
成色修正基础价格= [(物品修正基础价格+1)/2]

2.3普通、超强、魔法、稀有物品
成色修正基础价格=物品修正基础价格


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(3)楼,发贴时间:25-05-22 14:15

3.技能修正基础价格(staffmode,即singleskill——角色限定技能)
此部分适用于各种品质物品。

非修改游戏中,可能出现staffmode的物品有:部分暗金物品和套装物品;其他各类品质的野蛮人头盔、德鲁伊头盔、死灵盾牌,法师法珠、刺客高级爪(weapon.txt的type=h2h2),以及权杖、手杖、法杖。

对于存在staffmode的物品,其基础价格会进一步修正。此时需要用到skills.txt中的参数cost mult和cost add,以下用mul和add表示,n为对应的技能等级。

3.1投掷武器(1个单位)
技能修正卖出基础价格=成色修正基础价格+if(无staffmode,0,[(if(成色修正基础价格>65535,0,[成色修正基础价格*∑(mul*(2n-1))/1024])+∑(add *(2n-1)))/最大数量])
技能修正买入基础价格=成色修正基础价格+if(无staffmode,0,[(if(成色修正基础价格>65535,0,[成色修正基础价格*∑(mul*(2n-1))/4096])+∑(add *(2n-1)))/最大数量])

3.2除投掷武器外的其他物品
技能修正卖出基础价格=成色修正基础价格+if(无staffmode,0,if(成色修正基础价格>65535,0,[成色修正基础价格*∑(mul*(2n-1))/1024])+∑(add*(2n-1)))
技能修正买入基础价格=成色修正基础价格+if(无staffmode,0,if(成色修正基础价格>65535,0,[成色修正基础价格*∑(mul*(2n-1))/4096])+∑(add*(2n-1)))


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(4)楼,发贴时间:25-05-22 14:17

4.词缀修正基础价格
此部分只适用于超强、魔法、稀有物品,包括其自身的词缀,以及在其上镶嵌珠宝、宝石、符文乃至形成符文之语所增加的词缀。
物品自带的天然孔数,以及拉苏克打孔提供的孔数,都不属于词缀,不会增加价格。
低品质、普通、套装和暗金物品,其上的词缀(包括镶嵌物词缀)不影响价格。

具体公式为:
投掷武器(1个单位):
词缀修正卖出基础价格=技能修正卖出基础价格+if(无词缀修正,0,[(∑if(技能修正卖出基础价格*Δ<65536,[技能修正卖出基础价格*Δ*Multiply/1024],[技能修正卖出基础价格*Δ/1024]*Multiply)+∑Add)/最大数量])
词缀修正买入基础价格=技能修正买入基础价格+if(无词缀修正,0,[(∑if(技能修正买入基础价格*Δ<65536,[技能修正买入基础价格*Δ*Multiply/1024/if(技能类词缀,4,1)],[技能修正买入基础价格*Δ/1024/if(技能类词缀,4,1)]*Multiply)+∑Add)/最大数量])

除投掷武器外的其他物品:
词缀修正卖出基础价格=技能修正卖出基础价格+if(无词缀修正,0,∑if(技能修正卖出基础价格*Δ<65536,[技能修正卖出基础价格*Δ*Multiply/1024],[技能修正卖出基础价格*Δ/1024]*Multiply)+∑Add)
词缀修正买入基础价格=技能修正买入基础价格+if(无词缀修正,0,∑if(技能修正买入基础价格*Δ<65536,[技能修正买入基础价格*Δ*Multiply/1024/if(技能类词缀,4,1)],[技能修正买入基础价格*Δ/1024/if(技能类词缀,4,1)]*Multiply)+∑Add)


4.1技能类词缀
包括:singleskill(staffmode)、oskill(不限角色单个技能)、触发类技能ctc(攻击、击中、被击中、升级、死亡)、聚气类技能。
aura——赋予灵气不计入此处(非修改游戏中完全不影响任何价格)。

此时,Δ为技能等级n,Add、Multiply分别为skills.txt中该技能的cost add和cost mult。
注意:触发类技能ctc的概率此时不起作用,起作用的只有技能及其等级。

4.2其他词缀

Itemstatcost.txt中,有各类词缀的价格参数Add、Multiply、Divide,Divide不起任何作用。Δ表示该词缀的变量部分。
注意:对于装备固有属性的增益词缀,都以绝对值增量进行计算。包括防具的防御值、耐久度,武器的伤害值、耐久度。因此,如果出现增强防御%、增强伤害%、增强耐久度%词缀时,不是以该百分比数值计算该词缀的价格增量,而是以该百分比带来的(相对于实际基础数值的)绝对数值增量计算价格增量。实际基础数值计算见“1.基础价格修正”部分。

a.耐久度增量
弓、十字弓、投掷武器、幻化之刃,不使用耐久度参数,不会随机到无法破坏、恢复耐久度、耐久度%词缀。
如修改恢复耐久度、耐久度%词缀,则会按照增加数值计算相应价格。无法破坏词缀不影响价格。

b.伤害增量
双手剑有单手伤害和双手伤害两种伤害,投掷武器有单手伤害和投掷伤害两种伤害。ed%会同时增加这些伤害的最小值和最大值,需分别计算各类伤害的最小、最大伤害增量所带来的价格增量。
如果武器上的增强伤害%不能增加相应的最大伤害,则该词缀转变为+1最大伤害值,具体情况如下:
计算ed%是否能增加最大伤害时,单手武器、投掷武器按单手伤害算,双手剑按高的算(非修改游戏都是双手伤害高,因此都按双手伤害算),其他双手武器按双手伤害算。
投掷武器因此增加1max时,会同时增加单手max和投掷max;双手剑因此增加1max时,会同时增加单手max和双手max。


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(5)楼,发贴时间:25-05-22 14:18

5.镶嵌修正基础价格

镶嵌修正卖出基础价格=词缀修正卖出基础价格+if(无镶嵌物,0,[∑镶嵌物基础价格/2])
(实际游戏无法卖出,仅计算维修价格时使用)
镶嵌修正买入基础价格=词缀修正买入基础价格+if(无镶嵌物,0,[∑镶嵌物基础价格/2])

珠宝的基础价格,为misc.txt中的初始价格cost,不包含珠宝词缀所带来的价格。
投掷武器无法镶嵌。


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(6)楼,发贴时间:25-05-22 14:19

6.计算三类npc价格

6.1卖出价格

破碎物品、无形物品、有镶嵌物物品,npc不能卖出,人物卖给npc后会直接消失,所以不存在npc卖出价格。

6.1.1npc卖出基础价格——npc修正
npc卖出基础价格=if(镶嵌修正卖出基础价格<65536,[镶嵌修正卖出基础价格*sellmult/1024],[镶嵌修正卖出基础价格/1024]*sellmult)

sellmult为npc.txt中的sell mult列、相应npc行的数值。
大部分npc的sellmult=1024。但有一些特例:
恰西=960(960/1024=15/16),基德=1088(1088/1024=17/16)。
马拉=拉苏克=安亚=2048(2048/1024=2)

6.1.2任务后卖出价格——任务修正

完成凯恩的搜寻、罗达门特的巢穴、蓝衣森古书等3个任务,对应幕的npc价格会额外降低约10%,questmult=922。
完成哈洛加斯围城战,第五幕npc价格会额外降低约50%,questmult=512。

若完成相关任务:
任务后卖出价格=if(npc卖出基础价格<65536,[卖出修正基础价格*questmult/1024],[卖出修正基础价格/1024]*questmult)
若未完成相关任务:
任务后卖出价格=npc卖出基础价格

6.1.3最终卖出价格——物品降价修正

可降低价格的物品包括:
符文之语—边缘,降低npc价格15%;
暗金超大护身符—基德的运气,降低npc价格10%-15%。
以上两者叠加计算,最多降低npc价格30%
(若修改物品的该数值,则实际最多降低npc价格99%)

最终卖出价格=max(1,(任务后卖出价格-[任务后卖出价格*物品降价百分比])*数量)

可堆叠物品(如投掷武器,回城之书、辨识之书中的卷轴)的数量可以不为1,其他物品的数量为1。
回城之书及辨识之书的价格=书本身的价格+其中卷轴的价格(按实际数量计算)

最终卖出价格至少为1。

[ 本贴由 yanhuang415 在 05-22 14:44 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(7)楼,发贴时间:25-05-22 14:21

6.2买入价格
6.2.1买入基础价格
买入基础价格=[镶嵌修正买入基础价格/if(角色专属,4,1)/if(无形,4,1)]

6.2.2npc买入基础价格
npc买入基础价格=if(买入基础价格<65536,[买入基础价格*buymult/1024],[买入基础价格/1024]*buymult)

buymult为npc.txt中的buy mult列、相应npc行的数值。非修改游戏中所有npc的该数值均为512。

6.2.3最终买入价格
最终买入价格=max(1,min(maxbuy,if(and(投掷武器,有形),npc买入基础价格*最大数量-最终维修价格,npc买入基础价格*当前数量)))

可堆叠物品(如投掷武器,回城之书、辨识之书中的卷轴)的数量可以不为1,其他物品的数量为1。
回城之书及辨识之书的价格=书本身的价格+其中卷轴的价格(按当前数量计算)
maxbuy为npc.txt中maxbuy、max buy (N)、max buy (H)3列中选取对应难度的数值,为该npc在对应难度下的最高买入价格。
最终买入价格至少为1。


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(8)楼,发贴时间:25-05-22 14:22

6.3维修价格
无需维修物品(跳过维修价格计算):
a.无形物品
b.“无聚气词缀”或“有聚气但聚气次数为满值”,并且,“投掷武器数量为满值”或“投掷武器之外的物品不使用耐久度”或“投掷武器之外的物品耐久度为满值”或“投掷武器之外的物品有无法破坏词缀”

6.3.1维修基础价格
6.3.1.1投掷武器
维修基础价格=if(自回,0,镶嵌修正卖出基础价格)
即:自回投掷武器的维修基础价格均按0计算。

6.3.1.2除投掷武器外的其他物品
维修基础价格=if(自回,if(耐久度差值=1,0,[镶嵌修正卖出基础价格*(耐久度最大值-1)/耐久度最大值]),[镶嵌修正卖出基础价格*耐久度差值/耐久度最大值])
耐久度差值=耐久度最大值-当前耐久度
即:非投掷武器的自回物品,耐久度差值=1时,维修基础价格为0;其他情况,均按耐久度差值=耐久度最大值-1进行计算。

a.特殊情况:有无法破坏词缀、并且聚气次数不满时
维修基础价格=镶嵌修正卖出基础价格
即:耐久度差值=耐久度最大值

6.3.2npc维修基础价格
npc维修基础价格=if(维修基础价格<65536,[维修基础价格*repmult/1024]+聚气维修价格,[维修基础价格/1024]*repmult+聚气维修价格)

repmult为npc.txt中的rep mult列、相应npc行的数值。非修改游戏中所有npc的该数值均为128。

6.3.2.1聚气维修价格

聚气维修价格=if((n+group*2)*10000<65536,[[(n+group*2)*10000*mul/1024]+add)*使用次数/最大次数],[[(n+group*2)*10000/1024]*mul+add)*使用次数/最大次数]
即:与cost无关,与技能等级n、技能组序号group、cost mul、cost add有关。
组序号group=[(Id-baseId)/5]+1,Id、cost mul、cost add为skills.txt中对应列的值,baseId为该角色第一个技能的Id。每个人物共30个技能,所以技能组序号从1到6,每组5个。

6.3.3最终维修价格——物品降价修正

最终维修价格=max(1,npc维修基础价格*max(1,使用数量)-[npc维修基础价格*物品降价百分比]*max(1,使用数量))

投掷武器之外的物品,使用数量均为1。
最终维修价格至少为1。


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是男性 yanhuang415 离线


等级:塔拉夏古墓
积分:131
金币:6171
发贴:131
捐赠:0
注册时间:2021-11-17
IP:*.*.*.*
         第(9)楼,发贴时间:25-05-22 14:23

三、赌博价格计算流程

1.扩展及精华指数
扩展指数ExFactor=max(0,[100*(clvl-exceplvl)/2]+1)
精华指数ElFactor=max(0,[(100*(clvl-elitelvl)+if(clvl-elitelvl<0,3,0))/4]+1)
clvl为人物等级,exceplvl为该普通物品对应的扩展级物品level,elitelvl为该普通物品对应的精华级物品level(weapons.txt、armor.txt、misc.txt中的level列)


2.计算cost_new
cost_new=(10000-ElFactor-ExFactor)*cost*quantity+ElFactor*Elcost+ExFactor*Excost
cost为该普通物品的初始价格,Elcost为对应精华级物品的初始价格,Excost为对应扩展级物品的初始价格,quantity为该物品的数量(投掷武器的数量=[(minstack+maxstack)/2],其他物品的数量=1)。

3计算赌博基础价格

3.1戒指和项链
赌博基础价格=gamblecost
misc.txt的gamble cost列对应值。

3.2武器和防具
赌博基础价格Gamblecost=[([(max(0,qlvl-45)+Clvl–[qlvl/2])*250/3]+[cost_new/10000])*([(Clvl*2+1)/3]+20)/15]
qlvl为该普通物品的level(weapons.txt、armor.txt、misc.txt中的level列)
其中Clvl=max(5,clvl),即人物等级低于5时,修正为5。

4.最终赌博价格
最终赌博价格=赌博基础价格-[赌博基础价格*物品降价百分比]


最新发表的主题 | 最新参与的主题汇报违规贴 
页次: 转到第 [ 1 2 ] 页加入收藏
IMPK战网论坛 >> 刺客 >> 浏览: 暗黑2物品价格计算导论
快速回复
<b>粗体字</b><i>斜体字<i><u>下划线</u>对齐方式插入列表插入超级链接插入图片插入Flash插入引用插入代码飞行字移动字播放realplay文件播放Media Player文件    >>> IMPK图床 <<<


系统时间:08-06 02:36,页面执行时间:0.0005s
[京ICP备12045407号-1]
FBB Beta 0.7.29, build1023
Powered by fantiyu, 2002-2003

IP地址位置数据由纯真CZ88提供支持